
<?php
/**
 * ... Controlador para el cliente conecta funciones del diseño con las de bases de datos.
 *
 * @package WordPress
 * @since 2.1 or {{@internal Unknown}}}
 *
 * ... Autor: Jordan Campos Delgado
  Fecha: 05/07/2012
 * Bitacora de modificaciones:
  <
  Autor:
  Fecha:
  Descripcion:
  >
 */
error_reporting(0);
// Se retoma la session.
session_start();
// Se establecen cookies de session para http o https
setcookie(session_name(), session_id(), NULL, NULL, NULL, 0);
setcookie(session_name(), session_id(), NULL, NULL, NULL, 1);


//include ("../vistas/bloqueDeSeguridad.php");

function agregarClientesRegistroUbicacion() {
    require_once 'modelos/clienteModelo.php';
    echo consultaClientesRegistroUbicacion($_SESSION['IdCliente']);
    try {
        if (consultaClientesRegistroUbicacion($_SESSION['IdCliente']) == 0){
            agregarClientesRegistroUbi($_SESSION['IdCliente'], $_SESSION['codAgente'], $_POST['latitud'], $_POST['longitud'], $_POST['txtImagen']);
            ?>
            <script type="text/javascript">
                $().message("Se ha Ingresado exitosamente.");
                //e.preventDefault();
                $().message($("#message").val()); 
            </script>
            <?php
            }else{
            actualizaClientesRegistroUbicacion($_SESSION['IdCliente'], $_SESSION['codAgente'], $_POST['latitud'], $_POST['longitud'], $_POST['txtImagen']);
                     ?>
            <script type="text/javascript">
                $().message("Se ha actualizado exitosamente.");
                //e.preventDefault();
                $().message($("#message").val()); 
            </script>
            <?php
            }
        redirect2MenuCliente();

    } catch (Exception $e) {
        echo 'Excepción capturada: ', $e->getMessage(), "\n";
    }
}

function ClienteRecibo() {
// No se devuelve con ../ porque el include es llamados desde el index.php y estan en el mismo nivel.
    require_once 'modelos/clienteModelo.php';
    //require_once 'FirePHPCore/FirePHP.class.php';
    //$firephp = FirePHP::getInstance(true);
    //$firephp->log('ClienteRecibo', 'ClienteRecibo');
    try {
        if (ObtenerPlazo() > 1) {//quitar el =
            if (validarCobros()) {//quitar el !
                include 'vistas/clientes/ClienteRecibo.php';
            } else {
                ?>
                <script type="text/javascript">
                    $().message("Cuenta al d&iacute;a.");
                    //e.preventDefault();
                    $().message($("#message").val()); 
                </script>
                <?php
                require_once 'vistas/menus/MenuClienteSeleccion.php';
            }
        } else {
            ?>
            <script type="text/javascript">
                $().message("Esta opcion es solo para clientes de credito.");
                //e.preventDefault();
                $().message($("#message").val()); 
            </script>
            <?php
            require_once 'vistas/menus/MenuClienteSeleccion.php';
        }
    } catch (Exception $e) {
        include 'paginaPrincipal.php';
        echo 'Excepción capturada: ', $e->getMessage(), "\n";
    }
}

function agregarClienteNuevo(){
    require_once 'modelos/clienteModelo.php';
    try {
        //INSERT INTO tbl_Cliente (COD_COMPANIA, COD_AGENTE, NOMBRE, DIRECCION, TELEFONO,FAX, LIMITE_CREDITO,
        //SALDO, COD_TIPOPRECIO, PLAZO,IV, VISITADO,PAGA_DOLAR, COD_COBRADOR,TIPO_CLIENTE, TRIBUTARIO,BLOQUEADO)
        // VALUES ()
        
            $codigoCliente = agregarClientesNuevos($_SESSION['codCompania'], $_SESSION['codAgente'],
                    $_POST['txtNombre'], $_POST['txtDireccion'], $_POST['txtTelefono'],
                    $_POST['txtFax'], 0, 0,$_POST['txtTipoP'], $_POST['txtPlazo'], $_POST['txtIV'],
                    0, $_POST['pagaD'], $_POST['txtCobrador'], $_POST['txtTipoC'], $_POST['txtTributario']);
            if($codigoCliente != ''){
                   agregarClienteUbicacion($codigoCliente, $_SESSION['codAgente'], $_POST['latitud'], $_POST['longitud'], $_POST['imagen']);
                   agregarClienteDia($codigoCliente, $_POST['seleccionDia'], $_POST['semana'], $_POST['orden']);
            }

        require_once 'vistas/clientes/ClienteSeleccion.php';
    } catch (Exception $e) {
        include 'paginaPrincipal.php';
        echo 'Excepción capturada: ', $e->getMessage(), "\n";
    }
}

function agregarClientes() {
    try {
        require_once 'vistas/clientes/ClienteAgregar.php';
    } catch (Exception $e) {
        include 'paginaPrincipal.php';
        echo 'Excepción capturada: ', $e->getMessage(), "\n";
    }
}
function listarClientes() {


    require_once 'modelos/clienteModelo.php';

    try {

        $items = listarTodosClientes();
        $pendientes = buscaClientesPendientes("T");

        $visitados = buscaClientesVisitados("T");

        $total_registros = sizeof($items);

        require_once 'vistas/clientes/ClienteSeleccion.php';
    } catch (Exception $e) {
        include 'paginaPrincipal.php';
        echo 'Excepción capturada: ', $e->getMessage(), "\n";
    }
}

function listarClientesXDia() {

    require_once 'modelos/clienteModelo.php';


    try {
        $items = buscaClientesDia($_GET["dia"]);
        $pendientes = buscaClientesPendientes($_GET["dia"]);
        $visitados = buscaClientesVisitados($_GET["dia"]);
        $total_registros = sizeof($items);

        require_once 'vistas/clientes/ClienteSeleccion.php';
    } catch (Exception $e) {
        include 'paginaPrincipal.php';
        echo 'Excepción capturada: ', $e->getMessage(), "\n";
    }
}

function validarCliente() {
    require_once "modelos/clienteModelo.php";
    try {
        if (isset($_SESSION['usuario']) || validarClienteModelo($_POST['usuario'], $_POST['clave']) > 0) {
            include 'paginaPrincipal.php';
        } else {
            ?>
            <script type="text/javascript">
                imprimirMensaje("Usuario Incorrecto.");   
            </script>
            <?php
            require_once 'vistas/bienvenida.php';
        }
    } catch (Exception $e) {
        echo 'Excepción capturada: ', $e->getMessage(), "\n";
    }
}

function agregarClientesRegistroVisitaControlador() {
    require_once "modelos/clienteModelo.php";
    //require_once 'FirePHPCore/FirePHP.class.php';
    //$firephp = FirePHP::getInstance(true);
    //$firephp->log($_GET['accion'], 'accion');

    try {
        if (consultaClientesRegistroVisita($_SESSION['IdCliente'], $_SESSION['codAgente'], $_POST['fecha']) == 0)
            agregarClientesRegistroVisita($_SESSION['IdCliente'], $_SESSION['codAgente'], $_POST['cmbRazon'], $_POST['fecha'], $_POST['hora']);

        redirect2MenuCliente();
    } catch (Exception $e) {
        echo 'Excepción capturada: ', $e->getMessage(), "\n";
    }
}

function agregarClientesRegistroVisitaUNA() {
    
    require_once "../modelos/ajaxModelo.php";
    
    require_once "../modelos/clienteModelo.php";
    
    
    try {
        if (consultaClientesRegistroVisita($_SESSION['IdCliente'], $_SESSION['codAgente'], $_POST['fecha']) == 0) {
            agregarRegistroVisita($_SESSION['IdCliente'], $_SESSION['codAgente'], getdate());
        }
    } catch (Exception $e) {
        echo 'Excepción capturada: ', $e->getMessage(), "\n";
    }
}

function listaArticulos() {

    // echo 'hola soy dioni';ok
    require_once 'modelos/clienteModelo.php';
    //require_once 'FirePHPCore/FirePHP.class.php';
    //$firephp = FirePHP::getInstance(true);
    //$firephp->log('listarClientesXDia', 'listarClientesXDia');

    try {
        //$items = buscaClientesDia($_GET["dia"]);
        //$pendientes = buscaClientesPendientes($_GET["dia"]);
        //$visitados = buscaClientesVisitados($_GET["dia"]);
        //$total_registros = sizeof($items);

        require_once 'vistas/clientes/listaArticulos.php';
    } catch (Exception $e) {

        include 'paginaPrincipal.php';
        echo 'Excepción capturada: ', $e->getMessage(), "\n";
    }
}

function agregarLineaFacturas() {
    $intCantidadUnidades = 0;
    $fltMontoBruto = 0;
    $fltPUOriginal = 0;
    $_SESSION['intTemp'] = 0;
    $intFactor = 0;
    $fltMontoDescFijo = 0;
    $fltMontoBruto = 0;
    $fltPorcentajeDescFijo = 0;
    $fltMontoDescPromocion = 0;
    $fltMontoBruto = 0;
    $fltPorcentajeDescPromocion = 0;
    $fltMontoDescCompetencia = 0;
    $fltIV = 0;
    $fltIVCompania = 0;
    $_SESSION['fltMontoFacturas'] = 0;
    $fltPorcentajeDescCompetencia = 0;

    require_once "modelos/clienteModelo.php";
    require_once "modelos/principalModelo.php";
    
    try {
        
        $_POST['total'] = str_replace(",","",$_POST['total']);
        $maximo = $_POST['maximo'];
        $intFactor = $_POST['hddFactor'];
        $minimo = $_POST['minimo'];
        $intCantidadUnidades = $maximo * $intFactor + $minimo;
        $intArticuloBodegaUnidades = $_POST['hddUnidadesBodega'];
        $maximoLabel = $_POST['hddMaximoLabel'];
        $minimoLabel = $_POST['hddMinimoLabel'];
        $codigoArticulo = $_POST['codigo'];
        $cmbDocumentos = $_POST['cmbFacturas'];
        $blnArticuloLoaded = $_POST['hddFindArticulo'];
        $strCODCompania = $_POST['hddCodCompania'];
              
        $intPlazo = $_POST['hddPlazo'];
        $strGrupoBonificado = $_POST['hddGrupoBonifica'];
        $fltTipoCambio = $_POST['hddTipoCambio'];
        $fltPUOriginal = $_POST['total'] / $intCantidadUnidades;
        $fltPorcentajeDescFijo = ($_POST['hddDescuentoFijo'] == "" ? 0 : $_POST['hddDescuentoFijo'])/100;
        $fltPorcentajeDescPromocion = ($_POST['hddDescuentoPromocion'] == "" ? 0 : $_POST['hddDescuentoPromocion'])/100;
        $fltPorcentajeDescCompetencia = ($_POST['hddDescuentoCompetencia'] == "" ? 0 : $_POST['hddDescuentoCompetencia'])/100;
        
        $intPlazo = $intPlazo == 0 ? ObtenerPlazo() : $intPlazo;

        if ($_POST['hddImpVenta'] == "S")
            $blnArticuloIV = true;
        else
            $blnArticuloIV = false;

        $blnClienteIV = false;

        $oResponse = $_POST['hddArticuloBonificado'];

        if ($blnArticuloLoaded) {

          
            if ($maximo == "")
                $maximo = "0";
            if ($minimo == "")
                $minimo = "0";
            $intCantidadUnidades = $maximo * $intFactor + $minimo;


            if ($intCantidadUnidades > 0) {//Una vez verficadas las existencias
                
                #region Faltantes en Bodega
                if ($intCantidadUnidades > $intArticuloBodegaUnidades) { //FALTANTE EN BODEGA
                    
                    //UNIDADES MAXIMAS
                    if (($maximoLabel * $intFactor) > $intArticuloBodegaUnidades) {
                        
                        if ($maximoLabel == "0") {
                            
                            ?>
                            <script type="text/javascript">
                                imprimirMensaje("Faltante de Producto en MAX. Se creará la línea de Faltante.");
                            </script>
                            <?php
                            $intCantidadUnidades = 0;
                            $intCantidadUnidadesFaltante = $maximo * $intFactor;
                        } else {
                            
                            ?>
                            <script type="text/javascript">
                                var thePacket = <?php echo $minimoLabel; ?>;
                                var answer = confirm('Faltante de Producto en MIN.¿Desea FACTURAR la existencia '+thePacket+'?');
                                if (answer)
                                {
                                                                                                                                                        
                            <?php

                            $intCantidadUnidades += $minimoLabel;
                            $intCantidadUnidadesFaltante += $minimo - $minimoLabel;
                            ?>    
                                }
                                else
                                {
                            <?php
                            $intCantidadUnidadesFaltante += $minimo;
                            ?>  
                                }
                            </script>
                            <?php
                        }
                    }
                    else
                        $intCantidadUnidades = $maximo * $intFactor;

                    //UNIDADES MINIMAS

                    if (($minimo + $intCantidadUnidades) > $intArticuloBodegaUnidades) {
                        
                        if ($minimoLabel == "0") {
                            
                            ?>
                            <script type="text/javascript">
                                imprimirMensaje("Faltante de Producto en MIN. Se creará la línea de Faltante.");
                            </script>
                            <?php
                            $intCantidadUnidadesFaltante += $minimo;
                        } else {
                            
                            ?>
                            <script type="text/javascript">
                                var thePacket = <?= json_encode($minimoLabel); ?>;
                                var answer = confirm('Faltante de Producto en MIN.¿Desea FACTURAR la existencia ' + thePacket + '?');
                                if (answer)
                                {
                            <?php
                            $intCantidadUnidades += $minimoLabel;
                            $intCantidadUnidadesFaltante += $minimo - $minimoLabel;
                            ?>    
                                }
                                else
                                {
                            <?php
                            $intCantidadUnidadesFaltante += $minimo;
                            ?>  
                                }
                            </script>
                            <?php
                        }
                    }
                    else
                        $intCantidadUnidades += $minimo;

                    if ($intCantidadUnidadesFaltante > 0)
                        insertFaltante($codigoArticulo, $intCantidadUnidadesFaltante);
                }

                if ($intCantidadUnidades > 0) {//Una vez verficadas las existencias
                    
                    $dtCompanias = buscarCompannias($strCODCompania);
                    foreach ($dtCompanias as $item) {
                        $nombreCompannia = $item['Nombre'];
                        $fltIVCompania = $item['IV'];
                        $cedula = $item['Cedula'];
                    }

                    $strIDFactura = selectFacturaId($intPlazo);
                    
                    if ($strIDFactura == "") { //Ingresar Encabezado Factura
                        UpdateNumFactura();
                        switch ($strCODCompania) {
                            case "01":
                                $strNUMFactura = $_SESSION['factura01'];
                                insertFactura($strNUMFactura, $intPlazo);
                                overWriteSumInvoiceNum("01");
                                break;
                            case "20":
                                $strNUMFactura = $_SESSION['factura20'];
                                insertFactura($strNUMFactura, $intPlazo);
                                overWriteSumInvoiceNum("20");
                                break;
                            case "22":
                                $strNUMFactura = $_SESSION['factura22'];
                                insertFactura($strNUMFactura, $intPlazo);
                                overWriteSumInvoiceNum("22");
                                break;
                            case "30":
                                $strNUMFactura = $_SESSION['factura30'];
                                insertFactura($strNUMFactura, $intPlazo);
                                overWriteSumInvoiceNum("30");
                                break;
                            case "32":
                                $strNUMFactura = $_SESSION['factura32'];
                                insertFactura($strNUMFactura, $intPlazo);
                                overWriteSumInvoiceNum("32");
                                break;
                            case "34":
                                $strNUMFactura = $_SESSION['factura34'];
                                insertFactura($strNUMFactura, $intPlazo);
                                overWriteSumInvoiceNum("34");
                                break;
                        }
                        $strIDFactura = selectFacturaId($intPlazo);
                        
                    }

                    if ($blnArticuloEdit) {//Vendria por parametros al editar un árticulo
                        
                        $blnActualizado = false;
                        $_SESSION['fltMontoFacturas'] -= $_SESSION['fltMontoTemp'];
                        //Verifica si el articulo es bonificado, de serlo no puede modificarlo ni borrarlo.
                        if (selectArticuloBonificado($codigoArticulo)) {
                            ?>
                            <script type="text/javascript">
                                imprimirMensaje("Articulo Bonificado.");
                            </script>
                            <?php
                        } else { //El articulo NO es un articulo bonificado.
                            
                            $dtBonificable = selectArticuloBonificable($codigoArticulo);
                            foreach ($dtBonificable as $item) {
                                $artiBonficable = $item['CodArticulo'];
                                $bonificadoBonficable = $item['Bonificado'];
                                $canVentaBonficable = $item['CantVenta'];
                                $cantBonificadaBonficable = $item['CantBonificada'];
                            }

                            if ($dtBonificable != null) { // Si es una articulo ligado a un articulo bonificado.
                                
                                //****************************
                                $dtBonificadoBorrar = $dtBonificable;
                                foreach ($dtBonificadoBorrar as $item) {
                                    $artiBonficadoBorrar = $item['CodArticulo'];
                                    $bonificadoBorrar = $item['Bonificado'];
                                    $canVentaBorrar = $item['CantVenta'];
                                    $cantBonificadaBorrar = $item['CantBonificada'];
                                }
                                $dtCantBonif = selectExistenciaFact($strIDFactura, $bonificadoBorrar); // Existencia del Art.Bonificado en la Factura
                                if ($dtCantBonif != null) {
                                    

                                    $dtCantArtBonificable = selectExistenciaFact($cmbDocumentos, $codigoArticulo);
                                    $dtCantArtBonificado = selectExistenciaFact($cmbDocumentos, $bonificadoBorrar);

                                    if ($dtCantArtBonificado != null) {
                                        $intCantidadBonif = $dtCantArtBonificado;
                                    } else {
                                        $intCantidadBonif = 0;
                                    }
                                    //Cantidad del Articulo Bonificado en la factura entre la cantidad de Venta para bonificar.
                                    $intCantidad = $dtCantArtBonificable / $canVentaBorrar;

                                    if (($intCantidad * $cantBonificadaBorrar) == $intCantidadBonif) {// Valida la cantidad En factura vs la cantidad a eliminarse.
                                        //$firephp->log('$intCantidad * $cantBonificadaBorrar', '$intCantidad * $cantBonificadaBorrar');
                                        deleteArticuloFacturaDetalle($cmbDocumentos, $bonificadoBorrar);
                                        updateArticuloBodegaCantidad2($bonificadoBorrar, $dtCantBonif); //AGREGAR CANTIDAD ELIMINADA                                    
                                    } else {
                                        $blnActualizado = true;
                                        $intUnidaBonifica = ($dtCantArtBonificable / $canVentaBonficable);
                                        $UnidadReal = ($intCantidadUnidades / $canVentaBonficable);
                                        ActCantidadBonificadoFact($cmbDocumentos, $bonificadoBorrar, $dtCantArtBonificado - $intUnidaBonifica);
                                        $intCant1 = $dtCantArtBonificado - $intUnidaBonifica;
                                        ActCantidadBonificadoFact($cmbDocumentos, $bonificadoBorrar, $intCant1 + $UnidadReal);
                                        updateArticuloBodegaCantidad2($bonificadoBorrar, ($intUnidaBonifica + $UnidadReal)); //Convert.ToInt16(dtCantArtBonificado.Rows[0][0].ToString()) +AGREGAR CANTIDAD ELIMINADA                                    
                                    }
                                }
                                // **************************

                                deleteArticuloFacturaDetalle($strIDFactura, $codigoArticulo); // Se elimina el articulo.                                    
                            } else {
                                deleteArticuloFacturaDetalle($strIDFactura, $codigoArticulo); // Se borra el Art.
                            }
                        }
                    }

                    $articuloDetalle = selectArticuloFacturaDetalle($strIDFactura, $codigoArticulo);
                    if ($articuloDetalle) {
                        ?>
                        <script type="text/javascript">
                            imprimirMensaje("Ya existe este artículo, se actualiza con los datos ingresados.");
                        </script>                    
                        <?php
                        foreach ($articuloDetalle as $item) {
                            $unidadesAnterior = $item['Cantidad'];
                        }
                        $fltMontoBruto = $fltPUOriginal * $intCantidadUnidades; //Monto Bruto
                        $fltMontoDescFijo = $fltMontoBruto * $fltPorcentajeDescFijo; //Descuento Fijo
                        $fltMontoDescPromocion = $fltMontoBruto * $fltPorcentajeDescPromocion; //Descuento Promocion
                        $fltMontoDescCompetencia = $fltMontoBruto * $fltPorcentajeDescCompetenciagar; //Descuento Competencia ran07
                        updateArticuloDetalleFactura($strIDFactura, $codigoArticulo,$intCantidadUnidades,$unidadesAnterior,$fltMontoBruto,$fltMontoDescFijo,$fltMontoDescPromocion,$fltMontoDescCompetencia);


                        if ($strCODCompania == "01") 
                            $dtBonificable = selectArticuloBonificable($codigoArticulo);
                        else 
                            $dtBonificable = selectArticuloBonificable($strGrupoBonificado);

                        if($dtBonificable)
                        {
                            foreach ($dtBonificable as $item) {
                                    $artiBonficable = $item['CodArticulo'];
                                    $bonificadoBonficable = $item['Bonificado'];
                                    $canVentaBonficable = $item['CantVenta'];
                                    $cantBonificadaBonficable = $item['CantBonificada'];
                                }

                            $dtCantBonif = selectExistenciaFact($strIDFactura, $bonificadoBonficable);
                            if ($dtCantBonif != null) {
                                $intUnidaBonifica = ((($unidadesAnterior % $canVentaBonficable)+($intCantidadUnidades - $unidadesAnterior)) / $canVentaBonficable);
                                $intUnidaBonifica = $intUnidaBonifica * $cantBonificadaBonficable;
                                if(($intCantidadUnidades - $unidadesAnterior) == 0)
                                    deleteArticuloFacturaDetalle($strIDFactura, $codigoArticulo);
                                else
                                    ActCantidadBonificadoFact($strIDPedido, $bonificadoBonficable, ($dtCantBonif + $intUnidaBonifica));
                            }
                        }
                    } else {
                        
                        $dtBonificable = selectArticuloBonificable($codigoArticulo);

                        //confirmArticuloBonificado();   
                        foreach ($dtBonificable as $item) {
                            $artiBonficable = $item['CodArticulo'];
                            $bonificadoBonficable = $item['Bonificado'];
                            $canVentaBonficable = $item['CantVenta'];
                            $cantBonificadaBonficable = $item['CantBonificada'];
                        }
                        if ($dtBonificable != null) {
                        
                            if ($oResponse == true) {
                                
                                //Si ya existe una linea para el articulo bonificado, se actualiza la cantidad.
                                if (selectArticuloFacturaDetalle($strIDFactura, $bonificadoBonficable)) {
                                    
                                    if ($blnActualizado == false) {
                                    
                                        $dtCantBonif = selectExistenciaFact($strIDFactura, $bonificadoBonficable);
                                        if ($dtCantBonif > 0) {
                                    
                                            $dtExistenciaBodega = selectExistencia($bonificadoBonficable);
                                            if ($dtExistenciaBodega > 0) {// OK
                                                //$firephp->log('$dtExistenciaBodega > 0', '$dtExistenciaBodega > 0');
                                                $intUnidaBonifica = ($intCantidadUnidades / $canVentaBonficable);
                                                $intUnidaBonifica = $intUnidaBonifica * $cantBonificadaBonficable;
                                                //Actualiza detalle de factuta
                                                ActCantidadBonificadoFact($strIDFactura, $bonificadoBonficable, $dtCantBonif + $intUnidaBonifica);
                                                //Actualiza existencia
                                                updateArticuloBodegaCantidad($bonificadoBonficable, ($dtExistenciaBodega - $intUnidaBonifica));
                                            }
                                        }
                                        //Refresh();
                                        $blnActualizado = false;
                                    }
                                } else if($oResponse) { // NO existe la linea a bonificarse.
                                    
                                    ?>
                                    <script>
                                        var i = "<?php echo $oResponse ?>";
                                        //alert(i);
                                        </script>
                                    <?php
                                    $dtCantBonif = selectExistencia($bonificadoBonficable);
                                    if ($dtCantBonif != null) {
                                        
                                        if ($dtCantBonif > 0) { // La existencia tiene que ser mayor a cero para poder bonificar. 
                                            
                                            $intUnidaBonifica = ($intCantidadUnidades / $canVentaBonficable);
                                            $intUnidaBonifica = $intUnidaBonifica * $cantBonificadaBonficable;
                                            $strArtRefBonificado = $bonificadoBonficable;
                                            $fltMontoBruto = 0; //Monto Bruto
                                            $fltMontoDescFijo = 0; //Descuento Fijo
                                            $fltMontoDescPromocion = 0; //Descuento Promocion
                                            $fltMontoDescCompetencia = 0; //Descuento Competencia ran07  
                                            $fltIV = 0;
                                            $blnActualizado = false;

                                            $intUnidadBonifDetalle = 0;
                                            if ($intUnidaBonifica != 0 || $intUnidadBonifDetalle != 0) {
                                                
                                                if ($dtCantBonif > 0) {
                                                    
                                                    if ($intUnidaBonifica <= $dtCantBonif) {
                                                        
                                                        insertFacturaDetalle($strIDFactura, $bonificadoBonficable, ($intUnidaBonifica + $intUnidadBonifDetalle), 0.01 * $intFactor, $fltMontoBruto, $fltIV, $fltPorcentajeDescFijo, $fltMontoDescFijo, $fltPorcentajeDescPromocion, $fltMontoDescPromocion, $fltPorcentajeDescCompetencia, $fltMontoDescCompetencia); //Crea Linea Detalle de Factura
                                                        $_SESSION['fltMontoFacturas'] += $fltMontoBruto + $fltIV - $fltMontoDescFijo - $fltMontoDescPromocion - $fltMontoDescCompetencia;
                                                        
                                                        updateArticuloBodegaCantidad($bonificadoBonficable, ($dtCantBonif - $intUnidaBonifica)); //Actualiza Cantidad Unidades en Bodega( Existencia Actual - Cantidad Unidades por Facturar)
                                                    }
                                                }
                                            } else {
                                                deleteArticuloFacturaDetalle($strIDFactura, $bonificadoBonficable);
                                            }
                                        }
                                    }
                                }
                                if ($blnArticuloEdit) {//ACTUALIZA DATAGRID DETALLE
                                    //        DisplayDetalle();
                                    //        pnlInfo.Visible = false;
                                }
                            }
                        }//Fin Valida Bonificable
                        //INGRESO DE UNIDADES MAXIMAS
                        
                        $_SESSION['intTemp'] = $intCantidadUnidades ;
                        if ($_SESSION['intTemp'] != 0) {
                            
                            $fltMontoBruto = $fltPUOriginal * $_SESSION['intTemp']; //Monto Bruto
                            $fltMontoDescFijo = $fltMontoBruto * $fltPorcentajeDescFijo; //Descuento Fijo
                            $fltMontoDescPromocion = $fltMontoBruto * $fltPorcentajeDescPromocion; //Descuento Promocion                                
                            $fltMontoDescCompetencia = $fltMontoBruto * $fltPorcentajeDescCompetencia; //Descuento Competencia               ran 07                 
                            
                            if ($blnClienteIV && $blnArticuloIV) //CALCULO I.V.
                                $fltIV = ($fltMontoBruto - ($fltMontoDescFijo + $fltMontoDescPromocion + $fltMontoDescCompetencia)) * $fltIVCompania;
                            insertFacturaDetalle($strIDFactura, $codigoArticulo, $_SESSION['intTemp'] , $fltPUOriginal , $fltMontoBruto, $fltIV, $fltPorcentajeDescFijo, $fltMontoDescFijo, $fltPorcentajeDescPromocion, $fltMontoDescPromocion, $fltPorcentajeDescCompetencia, $fltMontoDescCompetencia); //Crea Linea Detalle de Factura
                            $_SESSION['fltMontoFacturas'] += $fltMontoBruto + $fltIV - $fltMontoDescFijo - $fltMontoDescPromocion - $fltMontoDescCompetencia;
                            
                        }


                        $intArticuloBodegaUnidades -= $intCantidadUnidades;
                        
                        updateArticuloBodegaCantidad($strIDFactura, $intArticuloBodegaUnidades); //Actualiza Cantidad Unidades en Bodega( Existencia Actual - Cantidad Unidades por Facturar)
                        $dtArticulosBodega = selectArticulosBodega(); //ACTUALIZAR INVENTARIOS DISPONIBLES
                        if ($fltTipoCambio > 0 && !$blnTipoCambioActualizado) {
                            //$firephp->log('$fltTipoCambio > 0', '$fltTipoCambio > 0');
                            updateFacturaTipoCambio($strIDFactura, $fltTipoCambio);
                            $blnTipoCambioActualizado = true;
                        }
                       

                        if ($blnArticuloEdit) {//ACTUALIZA DATAGRID DETALLE
                            //DisplayDetalle();
                            //pnlInfo.Visible = false;
                            //redirect2Tab2ClienteFactura();
                        }
                    }
                }


                $blnArticuloLoaded = false;
                //ResetCampos();
            } else {
                ?>
                <script type="text/javascript">
                    imprimirMensaje("Cantidad Debe Ser MAYOR que 0.");
                </script>
                <?php
                //redirect2Tab2ClienteFactura();
            }
            //$firephp->log('final require', 'final require');

            redirect2Tab2ClienteFactura();
        }

        else
            FindArticulo(); //PENDIENTE de hacer jcamposd


            
//redirect2Tab2ClienteFactura();
    } catch (Exception $e) {
        redirect2Tab2ClienteFactura();
        imprimirMensaje("Excepción capturada:" . $e->getMessage());
        echo 'Excepción capturada: ', $e->getMessage(), "\n";
    }
}

function overWriteSumInvoiceNum($strCODCompania) {
    require_once "modelos/clienteModelo.php";
    //require_once 'FirePHPCore/FirePHP.class.php';
    //$firephp = FirePHP::getInstance(true);
    //$firephp->log($strCODCompania, '$strCODCompania en overWriteSumInvoiceNum');
    $completeurl = 'parametros/parameters.xml';
//cargamos el archivo por medio de la funcion simplexml_load_file
    if ($xml = @simplexml_load_file('parametros/parameters.xml')) {
//seleccionamos todos los nodos estudiante

        switch ($strCODCompania) {

            case "01":
                $xml->Factura01 = $xml->Factura01 + 1;
                $_SESSION['factura01'] = (String) $xml->Factura01;
                break;
            case "20":
                $xml->Factura20 = $xml->Factura20 + 1;
                $_SESSION['factura20'] = (String) $xml->Factura20;
                break;
            case "22":
                $xml->Factura22 = $xml->Factura22 + 1;
                $_SESSION['factura22'] = (String) $xml->Factura22;
                break;
            case "30":
                $xml->Factura30 = $xml->Factura30 + 1;
                $_SESSION['factura30'] = (String) $xml->Factura30;
                break;
            case "32":
                $xml->Factura32 = $xml->Factura32 + 1;
                $_SESSION['factura32'] = (String) $xml->Factura32;
                break;
            case "34":
                $xml->Factura34 = $xml->Factura34 + 1;
                $_SESSION['factura34'] = (String) $xml->Factura34;
                break;
        }
    }
    $xml->asXML($completeurl);

    //Se envia a leer el para readquirir las variables
    //leerXML();
}

function redirect2Tab2ClienteFactura() {
    ?>
    <script type="text/javascript">
        // similar behavior as an HTTP redirect
        //window.location.replace("index.php?accion=ClienteFactura#tabr2");
        $(location).attr('href','index.php?accion=ClienteFactura');    
        // similar behavior as clicking on a link
        //window.location.href = "http://stackoverflow.com";
    </script>
    <?php
}

function eliminarArticuloFacturaDetalle() {
    require_once "modelos/clienteModelo.php";
    ?>
    <script type="text/javascript">
        //get the closable setting value.
 
    </script>
    <?php
    $strIDFactura = $_GET["idFactura"];
    $codigoArticulo = $_GET["idArticulo"];
    $artiBonficable = 0;
    $bonificadoBonficable = 0;
    $canVentaBonficable = 0;
    $cantBonificadaBonficable = 0;
    $dtBonificable = null;
    //$firephp->log($codigoArticulo, '$codigoArticulo');
    if (selectArticuloBonificado($codigoArticulo)) {
        //$firephp->log('if selectArticuloBonificado', 'if selectArticuloBonificado');
        ?>
        <script type="text/javascript">
            imprimirMensaje("Articulo Bonificado.");
        </script>
        <?php
    } else {
        //$firephp->log('else selectArticuloBonificado', 'else selectArticuloBonificado');
        $dtBonificadoBorrar = selectArticuloBonificable($codigoArticulo);
        foreach ($dtBonificadoBorrar as $item) {
            $artiBonficable = $item['CodArticulo'];
            
            $bonificadoBonficable = $item['Bonificado'];
            $canVentaBonficable = $item['CantVenta'];
            $cantBonificadaBonficable = $item['CantBonificada'];
        }
        if ($artiBonficable != "") {
            
            //$firephp->log('$dtBonificadoBorrar != null', '$dtBonificadoBorrar != null');
            $dtCantBonif = selectExistenciaPed($strIDFactura, $bonificadoBonficable); // Existencia del Art.Bonificado en la Factura
            if ($dtCantBonif) {
          
                //$firephp->log('$dtCantBonif != null', '$dtCantBonif != null');
                $dtCantArtBonificable = selectExistenciaFact($strIDFactura, $codigoArticulo);
                $dtCantArtBonificado = selectExistenciaFact($strIDFactura, $bonificadoBonficable);

                if ($dtCantArtBonificado) {
                    $intCantidadBonif = $dtCantArtBonificado;
                } else {
                    $intCantidadBonif = 0;
                }
                
          
                //Cantidad del Articulo Bonificado en la factura entre la cantidad de Venta para bonificar.
                $intCantidad = $dtCantArtBonificable / $canVentaBonficable;

                if (($intCantidad * $cantBonificadaBonficable) == $intCantidadBonif) {// Valida la cantidad En factura vs la cantidad a eliminarse.
                    deleteArticuloFacturaDetalle($strIDFactura, $bonificadoBonficable);
                    updateArticuloBodegaCantidad2($bonificadoBonficable, $dtCantBonif); //AGREGAR CANTIDAD ELIMINADA                                    
                } else {
                    if ($dtCantBonif != null) {
                        ActCantidadBonificadoFact($strIDFactura, $bonificadoBonficable, $dtCantArtBonificado - $intCantidad);
                        updateArticuloBodegaCantidad2($bonificadoBonficable, $intCantidad); //Convert.ToInt16(dtCantArtBonificado.Rows[0][0].ToString()) +AGREGAR CANTIDAD ELIMINADA                                    
                    }
                }
            }
        }

        deleteArticuloFacturaDetalle($strIDFactura, $codigoArticulo);
        
        updateArticuloBodegaCantidad2($codigoArticulo, $_SESSION['intTemp']); //AGREGAR CANTIDAD ELIMINADA
        $_SESSION['fltMontoFacturas'] -= $_SESSION['fltMontoTemp'];
        
        $dtArticulosBodega = selectArticulosBodega(); //ACTUALIZAR INVENTARIOS DISPONIBLES
  
        //redirect2Tab2ClienteFactura();
        
    }
    
    redirect2Tab2ClienteFactura();
    
}

function eliminarArticuloPedidoDetalle() {
    require_once "modelos/clienteModelo.php";

    //$txtCODArticulo.Enabled = true;
    $strIDPedido = $_GET["idPedido"];
    $codigoArticulo = $_GET["idArticulo"];
    $artiBonficable = 0;
    $bonificadoBonficable = 0;
    $canVentaBonficable = 0;
    $cantBonificadaBonficable = 0;
    $dtBonificable = null;

    $strGrupoBonificado = $_POST['hddGrupoBonifica'];
    $intCantBonificableNIC = 0;
    $intCantidad = 0;
    $countBonificables = 0;

    if (selectArticuloBonificado($codigoArticulo)) {
        ?>
        <script type="text/javascript">
            imprimirMensaje("Articulo Bonificado.");
        </script>
        <?php
        //MessageBox.Show("Articulo Bonificado", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
    } else {
        if (consultaCantDetalles($strIDPedido) == 1) {
            ?>
            <script type="text/javascript">
                imprimirMensaje("Ultimo Articulo, Anular Doc.");
            </script>
            <?php
            //MessageBox.Show("Ultimo Articulo, Anular Doc.", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
        } else {
            $fltMontoTemp = selectMontoPedDetalle($strIDPedido, $codigoArticulo);
            if ($_SESSION['codCompania'] != "01") {
                deleteArticuloPedidoDetalle($strIDPedido, $codigoArticulo);
            }
        }

        if ($_SESSION['codCompania'] != "01") {
            
            $dtBonificadoBorrar = selectArticuloBonificable($strGrupoBonificado);
            foreach ($dtBonificadoBorrar as $item) {
                $artiBonficable = $item['CodArticulo'];
                $bonificadoBonficable = $item['Bonificado'];
                $canVentaBonficable = $item['CantVenta'];
                $cantBonificadaBonficable = $item['CantBonificada'];
            }
            if ($dtBonificadoBorrar != null) {
                $dtCantArtBonificable = selectExistenciaPedxGrupo($strIDPedido, $strGrupoBonificado);
                foreach ($dtCantArtBonificable as $item) {
                    $grupoBonifica = $item['GrupoBonifica'];
                    $cantidadoBonficable = $item['Cantidad'];
                    $countBonificables += 1;
                }

                if ($dtCantArtBonificable != null) {
                    for ($i = 0; $i < $countBonificables; $i++) {
                        $intCantBonificableNIC += $cantidadoBonficable;
                    }
                    if ($intCantBonificableNIC >= $canVentaBonficable) {
                        $cantidad = $intCantBonificableNIC / $cantidadoBonficable;
                        ActCantidadBonificadoPed($strIDPedido, $bonificadoBonficable, $cantidad);
                    } else {
                        deleteArticuloPedidoDetalle($strIDPedido, $bonificadoBonficable);
                    }
                } else {
                    if (consultaCantDetalles($strIDPedido) == 1) {
                        updatePedidoEstado($strIDPedido);
                        ?>
                        <script type="text/javascript">
                            imprimirMensaje("Pedido Anulado por ser ultima linea.");
                        </script>
                        <?php
                        //MessageBox.Show("Pedido Anulado por ser ultima linea", "SALIR", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
                    } else {
                        deleteArticuloPedidoDetalle($strIDPedido, $bonificadoBonficable);
                    }
                }
            }
            #endregion
        } else {
            #region 01
            $dtBonificadoBorrar = selectArticuloBonificable($strGrupoBonificado);
            foreach ($dtBonificadoBorrar as $item) {
                $artiBonficable = $item['CodArticulo'];
                $bonificadoBonficable = $item['Bonificado'];
                $canVentaBonficable = $item['CantVenta'];
                $cantBonificadaBonficable = $item['CantBonificada'];
            }
            
            
            if(!$dtBonificadoBorrar)
            {
                
                $dtBonificadoBorrar = selectArticuloBonificable($codigoArticulo);
                foreach ($dtBonificadoBorrar as $item) {
                    $artiBonficable = $item['CodArticulo'];
                    $bonificadoBonficable = $item['Bonificado'];
                    $canVentaBonficable = $item['CantVenta'];
                    $cantBonificadaBonficable = $item['CantBonificada'];
                }
            }
            
            if ($dtBonificadoBorrar != null) {
                $dtCantArtBonificable = selectExistenciaPed($strIDPedido, $codigoArticulo);
                $dtCantArtBonificado = selectExistenciaPed($strIDPedido, $bonificadoBonficable);
                if ($dtCantArtBonificado != null) {
                    $intCantidadBonif += $dtCantArtBonificado;
                } else {
                    $intCantidadBonif = 0;
                }

                $intCantidad = $dtCantArtBonificable / $canVentaBonficable;

                if (($intCantidad * $cantBonificadaBonficable) == $intCantidadBonif || $intCantidad <= 0) {
                    $intCantidadBonifica = 0;
                    deleteArticuloPedidoDetalle($strIDPedido, $bonificadoBonficable);
                } else {
                    if ($dtCantArtBonificado != null) {
                        $intCantidadBonifica -= $intCantidadBonif;
                        ActCantidadBonificadoPed($strIDPedido, $bonificadoBonficable, $dtCantArtBonificado - $intCantidad);
                    }
                }
            }
            deleteArticuloPedidoDetalle($strIDPedido, $codigoArticulo);
            #endregion
        }

        
        $_SESSION['fltMontoTemp'] = $fltMontoPedidos;
        $_SESSION['fltMontoPedidos'] -= $_SESSION['fltMontoTemp'];
        
        
    }
    
    redirect2Tab2ClientePedido();
}

function agregarLineaPedidos() {

    $intCantidadUnidades = 0;
    $fltMontoBruto = 0;
    $fltPUOriginal = 0;
    $_SESSION['intTemp'] = 0;
    $intFactor = 0;
    $fltMontoDescFijo = 0;

    $fltPorcentajeDescFijo = 0;
    $fltMontoDescPromocion = 0;
    $fltPorcentajeDescPromocion = 0;
    $fltMontoDescCompetencia = 0;
    $fltIV = 0;
    $fltIVCompania = 0;
    $_SESSION['fltMontoFacturas'] = 0;
    $fltPorcentajeDescCompetencia = 0;
    
    $bonificadoBonficable = "";
    $strGrupoBhddGrupoBonificaonificado ="";
    $cedula = "";
    $nombreCompannia = "";
    $strNUMPedido = "";
    $canVentaBonficable = 0;

    require_once "modelos/clienteModelo.php";
    require_once "modelos/principalModelo.php";
    require_once "modelos/ajaxModelo.php";

    try {
        
        $_POST['total'] = str_replace(",","",$_POST['total']);
        $maximo = $_POST['maximo'];
        $intFactor = $_POST['hddFactor'];
        $minimo = $_POST['minimo'];
        $intCantidadUnidades = $maximo * $intFactor + $minimo;
        $intArticuloBodegaUnidades = $_POST['hddUnidadesBodega'];
        $maximoLabel = $_POST['hddMaximoLabel'];
        $minimoLabel = $_POST['hddMinimoLabel'];
        $codigoArticulo = $_POST['codigo'];
        $cmbDocumentos = $_POST['cmbFacturas'];
        $blnArticuloLoaded = $_POST['hddFindArticulo'];
        $strCODCompania = $_POST['hddCodCompania'];

        $intPlazo = $_POST['hddPlazo'];
        $strGrupoBhddGrupoBonificaonificado = $_POST['hddGrupoBonifica'];
        $fltTipoCambio = $_POST['hddTipoCambio'];

        $fltPUOriginal = $_POST['total'] / $intCantidadUnidades;
        $fltPorcentajeDescFijo = ($_POST['hddDescuentoFijo'] == "" ? 0 : $_POST['hddDescuentoFijo'])/100;
        $fltPorcentajeDescPromocion = ($_POST['hddDescuentoPromocion'] == "" ? 0 : $_POST['hddDescuentoPromocion'])/100;
        $fltPorcentajeDescCompetencia = ($_POST['hddDescuentoCompetencia'] == "" ? 0 : $_POST['hddDescuentoCompetencia'])/100;
        
        $intPlazo = $intPlazo == 0 ? ObtenerPlazo() : $intPlazo;
        $blnActualizado = false;
        //txtCODArticulo.Enabled = true;
        if ($blnArticuloLoaded) {
            if ($maximoLabel == "")
                $maximo = "0";
            if ($minimoLabel == "")
                $minimo = "0";
            $intCantidadUnidades = $maximo * $intFactor + $minimo;
            //12
            if ($intCantidadUnidades > 0) {


                $dtCompanias = buscarCompannias($strCODCompania);

                foreach ($dtCompanias as $item) {
                    $nombreCompannia = $item['Nombre'];
                    $fltIVCompania = $item['IV'];
                    $cedula = $item['Cedula'];
                }


                
                $strIDPedido = selectNUMPedido($intPlazo);
                

                if ($strIDPedido == "") {

                    $strIDPedido = selectNUMPedidoPorCodAgente();

                    if ($_SESSION['DBName'] != "VENTASCR" || $_SESSION['DBName'] != "VENTASNUMAR") {
                        if ($intPlazo > 1)
                            insertPedido($strIDPedido, $intPlazo, "");
                        else
                            insertPedido($strIDPedido, $intPlazo, "SIN");
                    }
                    else
                        insertPedido($strIDPedido, $intPlazo, "");
                    //$intNuevoPedido = $strIDPedido + 1;//Incrementa Consecutivo Pedido
                    //writeXMLNumPedido(); // Se incrementa el pedido en este método
                    UpdateNumPedido();
                }
                else {
                    $strNUMPedido = $strIDPedido;
                }
                //methods.deleteArticuloPedidoDetalle(strIDPedido, txtCODArticulo.Text);
                //*****************************
                if ($_GET['blnArticuloEdit']) {
                    $fltMontoPedidos -= $fltMontoTemp;
                }

                $articuloDetalle = selectArticuloPedidoDetalle($strIDPedido, $codigoArticulo);    
                if (($articuloDetalle) && ($_GET['blnArticuloEdit'] == false)) {
                    ?>
                    <script type="text/javascript">
                        imprimirMensaje("Ya existe este artículo, se actualiza con los datos ingresados.");
                    </script>                    
                    <?php
                    foreach ($articuloDetalle as $item) {
                        $unidadesAnterior = $item['Unidades'];
                    }
                    $fltMontoBruto = $fltPUOriginal * $intCantidadUnidades; //Monto Bruto
                    $fltMontoDescFijo = $fltMontoBruto * $fltPorcentajeDescFijo; //Descuento Fijo
                    $fltMontoDescPromocion = $fltMontoBruto * $fltPorcentajeDescPromocion; //Descuento Promocion
                    $fltMontoDescCompetencia = $fltMontoBruto * $fltPorcentajeDescCompetenciagar; //Descuento Competencia ran07
                    updateArticuloDetallePedido($strIDPedido, $codigoArticulo,$intCantidadUnidades,$unidadesAnterior,$fltMontoBruto,$fltMontoDescFijo,$fltMontoDescPromocion,$fltMontoDescCompetencia);
                    
                    
                    if ($strCODCompania == "01") 
                        $dtBonificable = selectArticuloBonificable($codigoArticulo);
                    else 
                        $dtBonificable = selectArticuloBonificable($strGrupoBonificado);
                                        
                    if($dtBonificable)
                    {
                        foreach ($dtBonificable as $item) {
                                $artiBonficable = $item['CodArticulo'];
                                $bonificadoBonficable = $item['Bonificado'];
                                $canVentaBonficable = $item['CantVenta'];
                                $cantBonificadaBonficable = $item['CantBonificada'];
                            }

                        $dtCantBonif = selectExistenciaPed($strIDPedido, $bonificadoBonficable);
                        if ($dtCantBonif != null) {
                            $intUnidaBonifica = ((($unidadesAnterior % $canVentaBonficable)+($intCantidadUnidades - $unidadesAnterior)) / $canVentaBonficable);
                            $intUnidaBonifica = $intUnidaBonifica * $cantBonificadaBonficable;
                            if(($intCantidadUnidades - $unidadesAnterior) == 0)
                                deleteArticuloPedidoDetalle($strIDPedido, $codigoArticulo);
                            else
                                ActCantidadBonificadoPed($strIDPedido, $bonificadoBonficable, ($dtCantBonif + $intUnidaBonifica));
                        }
                    }
                    
                } else {
                    deleteArticuloPedidoDetalle($strIDPedido, $codigoArticulo);
                    if (selectArticuloBonificado($codigoArticulo)) {
                        ?>
                        <script type="text/javascript">
                            imprimirMensaje("Articulo Bonificado.");
                        </script>

                        <?php
                    } else {
                        //DataTable dtBonificable = methods.selectArticuloBonificable(txtCODArticulo.Text, intCantidadUnidades.ToString(), strCODCliente);
                        
                        if ($strCODCompania == "01") {
                            $dtBonificable = selectArticuloBonificable($codigoArticulo);

                            foreach ($dtBonificable as $item) {
                                $artiBonficable = $item['CodArticulo'];
                                $bonificadoBonficable = $item['Bonificado'];
                                $canVentaBonficable = $item['CantVenta'];
                                $cantBonificadaBonficable = $item['CantBonificada'];
                            }
                        } else {//pasa clase del articulo para bonificados combinados 
                            
                            $dtBonificable = selectArticuloBonificable($strGrupoBonificado);
                        }
                        
                        if ($bonificadoBonficable !="") {
                            
                            //if ($strCODCompania != "01") { // Se debe eliminar a solicitu de Marcela Jimenez
                            //    deleteArticuloPedidoDetalle($strIDPedido, $bonificadoBonficable);
                            //}
                            $dtCantidadesxGrupo = selectExistenciaPedxGrupo($strIDPedido, $strGrupoBonificado);
                            $intCantidadBonifica = 0;
                            if (dtCantidadesxGrupo != null) {
                                for ($i = 0; $i < $dtCantidadesxGrupo; $i++) {
                                    $intCantidadBonifica += $dtCantidadesxGrupo;
                                }
                            }

                            $intCantidadBonifica = selectExistenciaPedxGrupo($strIDPedido, $strGrupoBonificado);
                            $intCantidadBonifica += $intCantidadUnidades;
                            //12
                            if ($strCODCompania != "01") {
                                #region dif 01
                                if ($canVentaBonficable <= $intCantidadBonifica) {
                                 ?>
                                <script type="text/javascript">

                                   var answer = window.confirm("¿Desea Aplicar la Bonificacion?");
                                    if(answer)
                                    {                                       
                                        "<?php $oResponse = "true"?>";
                                    }                                      
                                
                                </script>
                                
                                <?php
                                    //oResponse = MessageBox.Show("Desea Aplicar la Bonificacion", "Advertencia", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
                                    
                                    if ($oResponse) {
                                        
                                        //Si ya existe una linea para el articulo bonificado, se actualiza la cantidad.
                                        if (selectArticuloPedidoDetalle($strIDPedido, $bonificadoBonficable)) {
                                            if ($blnActualizado == false) {
                                                $dtCantBonif = selectExistenciaPed($strIDPedido, $bonificadoBonficable);
                                                if ($dtCantBonif != null) {
                                                    $intUnidaBonifica = ($intCantidadUnidades / $canVentaBonficable);
                                                    $intUnidaBonifica = $intUnidaBonifica * $cantBonificadaBonficable;
                                                    ActCantidadBonificadoPed($strIDPedido, $bonificadoBonficable, ($dtCantBonif + $intUnidaBonifica));
                                                }
                                            }
                                            //Refresh();
                                            $blnActualizado = false;
                                        } else {
                                            if ($strCODCompania != "01") {
                                                $intUnidaBonifica = ($intCantidadBonifica / $canVentaBonficable); //12
                                            } else {
                                                $intUnidaBonifica = ($intCantidadUnidades / $canVentaBonficable);
                                            }
                                            $intUnidaBonifica = $intUnidaBonifica * $cantBonificadaBonficable; //2
                                            $strArtRefBonificado = $artiBonficable;
                                            $fltMontoBruto = 0; //Monto Bruto
                                            $fltMontoDescFijo = 0; //Descuento Fijo
                                            $fltMontoDescPromocion = 0; //Descuento Promocion
                                            $fltMontoDescCompetencia = 0; //Descuento Competencia ran07  
                                            $fltIV = 0;

                                            
                                            $intUnidadBonifDetalle = 0;

                                            
                                            if ($intUnidaBonifica != 0 || $intUnidadBonifDetalle != 0) {
                                                insertPedidoDetalle($strIDPedido, $strCODCompania, $bonificadoBonficable, ($intUnidadBonifDetalle + $intUnidaBonifica), 0.01, $fltMontoBruto, $fltIV, 0, $fltMontoDescFijo, 0, $fltMontoDescPromocion, 0, $fltMontoDescCompetencia, $codigoArticulo); //Crea Linea Detalle de Factura
                                                $fltMontoPedidos += $fltMontoBruto + $fltIV - $fltMontoDescFijo - $fltMontoDescPromocion - $fltMontoDescCompetencia;
                                            } else {
                                                deleteArticuloPedidoDetalle($strIDPedido, $bonificadoBonficable);
                                            }
                                        }
                                    }
                                }
                                #endregion
                            } else {
                                ?>
                                <script type="text/javascript">

                                   var answer = window.confirm("¿Desea Aplicar la Bonificacion?");
                                    if(answer)
                                    {                                       
                                        "<?php $oResponse = "true"?>";
                                    }                                      
                                
                                </script>
                                
                                <?php
                                if ($oResponse) {
                                    //Si ya existe una linea para el articulo bonificado, se actualiza la cantidad.
                                    if (selectArticuloPedidoDetalle($strIDPedido, $bonificadoBonficable)) {
                                        if ($blnActualizado == false) {
                                            $dtCantBonif = selectExistenciaPed($strIDPedido, $bonificadoBonficable);
                                            if ($dtCantBonif != null) {
                                                $intUnidaBonifica = ($intCantidadUnidades / $canVentaBonficable);
                                                $intUnidaBonifica = $intUnidaBonifica * $cantBonificadaBonficable;
                                                ActCantidadBonificadoPed($strIDPedido, $bonificadoBonficable, $dtCantBonif + $intUnidaBonifica);
                                            }
                                        }
                                        //Refresh();
                                        $blnActualizado = false;
                                    } else {
                                        
                                        $intUnidaBonifica = ($intCantidadUnidades / $canVentaBonficable);
                                        $intUnidaBonifica = $intUnidaBonifica * $cantBonificadaBonficable;
                                        $strArtRefBonificado = $bonificadoBonficable;
                                        $fltMontoBruto = 0; //Monto Bruto
                                        $fltMontoDescFijo = 0; //Descuento Fijo
                                        $fltMontoDescPromocion = 0; //Descuento Promocion
                                        $fltMontoDescCompetencia = 0; //Descuento Competencia ran07  
                                        $fltIV = 0;
                                        
                                        $intUnidadBonifDetalle = 0;
                                       
                                        if ($intUnidaBonifica != 0 || $intUnidadBonifDetalle != 0) {

                                            insertPedidoDetalle($strIDPedido, $strCODCompania, $bonificadoBonficable, ($intUnidadBonifDetalle + $intUnidaBonifica), 0.01, $fltMontoBruto, $fltIV, 0, $fltMontoDescFijo, 0, $fltMontoDescPromocion, 0, $fltMontoDescCompetencia, $codigoArticulo); //Crea Linea Detalle de Factura
                                            $fltMontoPedidos += $fltMontoBruto + $fltIV - $fltMontoDescFijo - $fltMontoDescPromocion - $fltMontoDescCompetencia;
                                        } else {
                                            deleteArticuloPedidoDetalle($strIDPedido, $bonificadoBonficable);
                                        }
                                    }
                                }
                            }
                        }//Fin Valida Bonificable
                        //INGRESO DE UNIDADES MAXIMAS
                        $_SESSION['intTemp'] = $intCantidadUnidades;
                        if ($_SESSION['intTemp'] != 0) {
                            $fltMontoBruto = $fltPUOriginal * $_SESSION['intTemp']; //Monto Bruto
                            $fltMontoDescFijo = $fltMontoBruto * $fltPorcentajeDescFijo; //Descuento Fijo
                            $fltMontoDescPromocion = $fltMontoBruto * $fltPorcentajeDescPromocion; //Descuento Promocion
                            $fltMontoDescCompetencia = $fltMontoBruto * $fltPorcentajeDescCompetencia; //Descuento Competencia ran07
                            if ($blnClienteIV && $blnArticuloIV) //CALCULO I.V.
                                $fltIV = ($fltMontoBruto - ($fltMontoDescFijo + $fltMontoDescPromocion + $fltMontoDescCompetencia)) * $fltIVCompania;

                            insertPedidoDetalle($strIDPedido, $strCODCompania, $codigoArticulo, $_SESSION['intTemp'], $fltPUOriginal, $fltMontoBruto, $fltIV, $fltPorcentajeDescFijo, $fltMontoDescFijo, $fltPorcentajeDescPromocion, $fltMontoDescPromocion, $fltPorcentajeDescCompetencia, $fltMontoDescCompetencia, $strArtRefBonificado); //Crea Linea Detalle de Factura
                            $fltMontoPedidos += $fltMontoBruto + $fltIV - $fltMontoDescFijo - $fltMontoDescPromocion - $fltMontoDescCompetencia;
                        }

                        if ($fltTipoCambio > 0 && !$blnTipoCambioActualizado) {
                            updatePedidoTipoCambio($strIDPedido, $fltTipoCambio);
                            $blnTipoCambioActualizado = true;
                        }
                        //fltMontoTemp = Convert.ToSingle(methods.selectMontoPedDetalle(cboDocumentos.SelectedValue.ToString(), txtCODArticulo.Text));
                        //lblTOTAL.Text = fltMontoPedidos.ToString("N", nfi);
                        $_SESSION['fltMontoFacturas'] = $fltMontoFacturas;
                        $blnArticuloLoaded = false;
                        //ResetCampos();
                        if ($blnArticuloEdit) {//ACTUALIZA DATAGRID DETALLE
                            //DisplayDetalle();
                            //pnlInfo.Visible = false;
                        }
                    }//Fin Valida Bonificado
                }
            } else {
                ?>
                <script type="text/javascript">
                    imprimirMensaje("Cantidad Debe Ser MAYOR que 0.");
                </script>
                <?php
            }

            //UpdateMontoDocumento($strIDPedido,"PEDIDO");
            redirect2Tab2ClientePedido();
        }

        else
            FindArticulo(); // Pendiente
    } catch (Exception $e) {
        echo 'Excepción capturada: ', $e->getMessage(), "\n";
    }
}

function writeXMLNumPedido($strCODCompania) {
    require_once "modelos/clienteModelo.php";
    
    $completeurl = 'parametros/parameters.xml';
    //cargamos el archivo por medio de la funcion simplexml_load_file
    if ($xml = @simplexml_load_file('parametros/parameters.xml')) {
        //seleccionamos todos los nodos estudiante
        $xml->Pedido = $xml->Pedido + 1;
        $_SESSION['pedido'] = $xml->Pedido + 1;
        
    }
    $xml->asXML($completeurl);

    //Se envia a leer el para readquirir las variables
    //leerXML();
}

function redirect2Tab2ClientePedido() {
    ?>
    <script type="text/javascript">
        // similar behavior as an HTTP redirect
        //window.location.replace("index.php?accion=ClienteFactura#tabr2");
        $(location).attr('href','index.php?accion=ClientePedido');    
        // similar behavior as clicking on a link
        //window.location.href = "http://stackoverflow.com";
    </script>
    <?php
}

function insertArticuloCompetencia() {
    require_once "modelos/clienteModelo.php";

    try {
        if ($_POST['precio'] > 0 & $_POST['articulo'] != "") {


            agregarArticuloCompetencia($_POST['articulo'], $_POST['precio'], $_POST['visible']);
        }
        redirect2Competencia();
    } catch (Exception $e) {
        echo 'Excepción capturada: ', $e->getMessage(), "\n";
    }
}

function redirect2Competencia() {
    ?>
    <script type="text/javascript">
        // similar behavior as an HTTP redirect
        //window.location.replace("index.php?accion=ClienteFactura#tabr2");
        $(location).attr('href','index.php?accion=Competencia&controlador=supervisor#tabc2');    
        // similar behavior as clicking on a link
        //window.location.href = "http://stackoverflow.com";
    </script>
    <?php
}

function agregarLineaDevoluciones() {
    require_once "modelos/clienteModelo.php";
//txtCODArticulo.Enabled = true;
    $maximo = $_POST['maximo'];
    $intFactor = $_POST['hddFactor'];
    $minimo = $_POST['minimo'];
    $intCantidadUnidades = $maximo * $intFactor + $minimo;

    $intArticuloBodegaUnidades = $_POST['hddUnidadesBodega'];
    $maximoLabel = $_POST['hddMaximoLabel'];
    $minimoLabel = $_POST['hddMinimoLabel'];
    $codigoArticulo = $_POST['codigo'];
    $cmbDocumentos = $_POST['cmbFacturas'];
    $blnArticuloLoaded = $_POST['hddFindArticulo'];
    $strCODCompania = $_POST['hddCodCompania'];

    $intPlazo = $_POST['hddPlazo'];
    $strGrupoBonificado = $_POST['hddGrupoBonifica'];
    $fltTipoCambio = $_POST['hddTipoCambio'];

//sound.Play();
    $intPlazo = $intPlazo == 0 ? ObtenerPlazo() : $intPlazo;
    $cboRazon = $_POST['cmbRazones'];
    //$blnArticuloEdit = false;

    if ($blnArticuloLoaded) {
        if ($maximo == "")
            $maximo = "0";
        if ($minimo == "")
            $minimo = "0";
        $intCantidadUnidades = $minimo * $intFactor + $minimo;
        if ($intCantidadUnidades > 0) {
            //rowTemp = dtCompanias.Select("COD_COMPANIA='" + strCODCompania + "'");
            //readXML();
            $strNumeroDevol = $_SESSION['devolucion'];
            $strIDDevolucion = selectNUMDevolucion($strNumeroDevol);
            if ($strIDDevolucion == "") {
                insertDevolucion($strNumeroDevol);
            }
            //else
            //$blnArticuloEdit = true; 
            //VERIFICA SI YA SE REGISTRO LA LINEA
            //if ($blnArticuloEdit)
            //{
            //    deleteArticuloDevolucionDetalle($strNumeroDevol, $codigoArticulo);
            //}
            if (sizeof(selectArticuloDevolucionDetalle($strNumeroDevol, $codigoArticulo)) > 0) {
                ?>
                <script type="text/javascript">
                    imprimirMensaje("Ya existe una linea de detalle para este artículo.");
                </script>
                <?php
            } else {
                //INGRESO DE UNIDADES MAXIMAS
                $intTemp = $intCantidadUnidades / $intFactor;
                if ($intTemp != 0) {
                    insertDevolucionDetalle($strNumeroDevol, $codigoArticulo, $cboRazon, $intTemp * $intFactor); //Crea Linea Detalle de Factura                            
                }
                //INGRESO UNIDADES MINIMAS
                $intTemp = $intCantidadUnidades % $intFactor;
                if ($intTemp != 0) {
                    insertDevolucionDetalle($strNumeroDevol, $codigoArticulo, $cboRazon, $intTemp); //Crea Linea Detalle de Factura                            
                }
                $blnArticuloLoaded = false;
                ResetCampos();
                if (blnArticuloEdit) {//ACTUALIZA DATAGRID DETALLE
                    DisplayDetalle();
                    //pnlInfo.Visible = false;
                }
            }

            //else
            //  MessageBox.Show("Cantidad Debe Ser MAYOR que 0", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
        }
        else
            FindArticulo();
    }
}

function writeXMLNumDevolucion() {
    require_once "modelos/clienteModelo.php";
    //require_once 'FirePHPCore/FirePHP.class.php';
    //$firephp = FirePHP::getInstance(true);
    //$firephp->log($strCODCompania, '$strCODCompania en overWriteSumInvoiceNum');
    $completeurl = 'parametros/parameters.xml';
    //cargamos el archivo por medio de la funcion simplexml_load_file
    if ($xml = @simplexml_load_file('parametros/parameters.xml')) {
        //seleccionamos todos los nodos estudiante
        $xml->Devolucion = $xml->Devolucion + 1;
        $_SESSION['devolucion'] = (String) $xml->Devolucion;
    }
    $xml->asXML($completeurl);

    //Se envia a leer el para readquirir las variables
    //leerXML();
}

function redirect2MenuCliente() {
    ?>
    <script>
        var i = "<?php echo $_SESSION['IdCliente'] ?>";
        $(location).attr('href','index.php?accion=MenuClienteSeleccion&id='+i);
                
    </script>
    <?php
}

function UpdateMontoDocumento($strIDDocumento,$strTipoDocumento) {
    
     
    require_once "../modelos/ajaxModelo.php";
       
    $fltDesMonto = 0;
    $fltMontoBruto = 0;
    $fltIV = 0;
    $fltTotal = 0;  
    
    if($strTipoDocumento == "PEDIDO")
        $dtDetalleDocumento = selectPedidoDetalle1($strIDDocumento);
    else
        $dtDetalleDocumento = selectFacturaDetalle1($strIDDocumento);
    
    if ($dtDetalleDocumento != null) {
    
        foreach ($dtDetalleDocumento as $item) {
            
            $fltDesMonto += $item['MontoPromocion'] + $item['MontoCompetencia'] + $item['MontoFijo'];
            $fltMontoBruto += $item['Monto'];
            $fltIV += $item['IV'];
        }
        $fltTotal = $fltMontoBruto - $fltDesMonto + $fltIV;
     
        if($strTipoDocumento == "PEDIDO")
            updatePedidoMonto($strIDDocumento, $fltMontoBruto, $fltDesMonto, $fltIV, $fltTotal);
        else
            updateFacturaMonto($strIDDocumento, $fltMontoBruto, $fltDesMonto, $fltIV, $fltTotal);
    }
}



?>